var complet = function (e, obj)
{	
	tecla = e.keyCode? e.keyCode : e.charCode;
	var sKey = String.fromCharCode(tecla);
	if((sKey == '|') || (sKey == '�') || (sKey == '`') || (sKey == '~') ||(sKey == '"') || (sKey == '&') || (sKey == ' ') || (sKey == '�') || (sKey == '!') || (sKey == '�') || (sKey == '#') || (sKey == '$') || (sKey == '%') || (sKey == '/') || (sKey == '(') || (sKey == ')') || (sKey == '=') || (sKey == '?') || (sKey == '�') || (sKey == '@') || (sKey == '*') || (sKey == '+') || (sKey == '[') || (sKey == ']') || (sKey == '{') || (sKey == '}') || (sKey == ';') || (sKey == ',') || (sKey == ':') || (sKey == '.') || (sKey == '_') || (sKey == '-'))
	{	
	 window.event.keyCode=0;
	}
}

function validaMontos(cantDecimales,cantEnteros,indNega,event,obj){
	return CatchNonNumbers_(event,indNega,1,'.',obj,cantDecimales,cantEnteros,obj);
}

// Archivo JScript
function getCursorPosition(txt)
{
    if(document.selection)
    {
        txt.focus();
        var oSel = document.selection.createRange();
        oSel.moveStart('character', -txt.value.length);
        return oSel.text.length;
    } 
    else(txt.selectionStart) 
        return txt.selectionStart;
}

//(sKey >= 'A' && sKey <= 'Z') || (sKey >= 'a' && sKey <= 'z') || (sKey == '�') ||
function getDecimalSeparatorCode(separator)
{
    if(separator == ".")
        return 46;
    else
        return 44;
}

function getSelectionStart(o) {
	if (o.createTextRange) {
		var r = document.selection.createRange().duplicate()
		r.moveEnd('character', o.value.length)
		if (r.text == '') return o.value.length
		return o.value.lastIndexOf(r.text)
	} else return o.selectionStart
}

function IsAllowed(s) // Which characters are allowed
{ 
	var arr = new Array(8, 9, 13, 17, 35, 36, 37, 38, 
	    39, 40, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57);
	for(i = 0; i < arr.length; i++)
	{
	    if(arr[i] == s)
	        return true;
	}
	return false;
}

//Verifica Numero Entero Valido
function verificaEntero(){
    valKey=event.keyCode;
    
    if ((valKey=='48') || (valKey=='49') || (valKey=='50') || (valKey=='51') || (valKey=='52') || (valKey=='53') || (valKey=='54') || (valKey=='55') || (valKey=='56') || (valKey=='57') || (valKey=='8'))  
        return true;
    else
        return false;
}

function esEmailValido(email){
	if (email != undefined && email.value != "" ){
		if (!/^[A-Za-z][A-Za-z0-9_.]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/.test(email.value)){
        	alert("Formato de Correo Electronico no valido");
                email.value = "";
			email.focus();
            return false;
        }
	}
}

function validarSumaInputText(){
  	var a, total = 0;    
	var elements = document.getElementsByTagName('INPUT');         
	for(a=0; a<elements.length; a++){     		 
	if(elements[a].type=='text'){  
	if(elements[a].value !='' ) {           		
		total += (parseFloat(elements[a].value));       
	}     
	}       
	} 
   
   if(total!=0){
   		Richfaces.showModalPanel('panelValidacionSuma');
   		return false;
   }
   return true;
}

function validarVaciosInputText(){
  	var a;    
	var elements = document.getElementsByTagName('INPUT');         
	for(a=0; a<elements.length; a++){     		 
	if(elements[a].type=='text'){  
	if(elements[a].value !='' ) {           		
		return true;
	}     
	}       
	} 
	Richfaces.showModalPanel('panelValidacionVacios');
   	return false;
}

function validacionBasicaRebalanceo(){
	if(validacionValoresRebalanceo()){
			if(validacionZeroInputText()){
			return true;
			}
	}
	return false;
}

function validacionBasicaRebalanceoNC(){
	if(validacionValoresRebalanceoNC()){
			if(validacionZeroInputText()){
			return true;
			}
	}
	return false;
}


function validacionValoresRebalanceo(){
var montousd='';
var montoeur='';
var txtmontopen='';
var txtmontousd='';
var txtmontoeur='';
var descripcioncat='';
var desviacionmonto=parseFloat(0);
var plazo='';
var flag=0;///////
var tipomoneda='';
for (var i=2;i<document.getElementById('formPrincipal:tableCalculadoraCliente').rows.length;i++)  
{

txtmontoeur = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[7];
if(txtmontoeur.firstChild){
if(txtmontoeur.firstChild.type=='text'){

descripcioncat = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[0].innerHTML;
plazo = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[1].innerHTML;
montousd = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[2].innerHTML;
montousd=montousd.replace(/,/g,'');
if(montousd==''){montousd=0};
montopen= document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[3].innerHTML;
montopen=montopen.replace(/,/g,'');
if(montopen==''){montopen=0};
montoeur = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[4].innerHTML;
montoeur=montoeur.replace(/,/g,'');
txtmontousd = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[5].firstChild.value;
if(txtmontousd==''){txtmontousd=0};
txtmontopen= document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[6].firstChild.value;
if(txtmontopen==''){txtmontopen=0};
txtmontoeur= document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[7].firstChild.value;
if(txtmontoeur==''){txtmontoeur=0};
flag=0;//////
tipomoneda='DOLARES';
desviacionmonto=parseFloat(montousd);
if(parseFloat(montousd)>=parseFloat(txtmontousd)*(-1)){
tipomoneda='SOLES';
desviacionmonto=parseFloat(montopen);
if(parseFloat(montopen)>=parseFloat(txtmontopen)*(-1)){
tipomoneda='EUROS';
desviacionmonto=parseFloat(montoeur);
if(parseFloat(montoeur)>=parseFloat(txtmontoeur)*(-1)){
	flag = 1;
}
}
}
if(flag==0){
if(tipomoneda=='DOLARES'){
//document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[5].firstChild.class='inputTextWarning';
}
if(tipomoneda=='SOLES'){
//document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[6].firstChild.class='inputTextWarning';
}
if(tipomoneda=='EUROS'){
//document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[7].firstChild.class='inputTextWarning';
}
Richfaces.showModalPanel('panelValidacionValores');
if(plazo != ''){
plazo=' - '+plazo;
}
document.getElementById('formValidacionValores:txtValidacionValores').innerHTML='No puede sacar una cantidad mayor de la que dispone en: ' + descripcioncat + plazo+ ' / Producto en ' +tipomoneda + ' = ' + format_number(desviacionmonto,2) ;
return false;
}
}
}
}
return true;
}

function validacionZeroInputText(){
var montousd='';
var montoeur='';
var txtmontopen='';
var txtmontousd='';
var txtmontoeur='';
var descripcioncat='';
var plazo='';
var flag=0;///////
var tipomoneda='';
var sumafila=parseFloat(0);
var flagvacios=0;
for (var i=2;i<document.getElementById('formPrincipal:tableCalculadoraCliente').rows.length;i++)  
{

txtmontoeur = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[7];
if(txtmontoeur.firstChild){
if(txtmontoeur.firstChild.type=='text'){
txtmontousd = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[5].firstChild.value;
if(txtmontousd==''){txtmontousd=0};
txtmontopen= document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[6].firstChild.value;
if(txtmontopen==''){txtmontopen=0};
txtmontoeur= document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[7].firstChild.value;
if(txtmontoeur==''){txtmontoeur=0};
sumafila=sumafila+parseFloat(txtmontousd)+
parseFloat(txtmontopen)+
parseFloat(txtmontoeur);
if(txtmontousd!=0||txtmontopen!=0||txtmontoeur!=0){
flagvacios=1;
}
}
}
}
if(sumafila==0 && flagvacios==1){
return true;
}
if(sumafila!=0){
Richfaces.showModalPanel('panelValidacionSuma');
if(sumafila>0){
document.getElementById('formValidacionDeficit:txtDeficit').innerHTML='En el portafolio propuesto, hay un  exceso: ' + format_number(Math.abs(sumafila),2);
}
if(sumafila<0){
document.getElementById('formValidacionDeficit:txtDeficit').innerHTML='En el portafolio propuesto, hay un  deficit: ' + format_number(Math.abs(sumafila),2);
}
return false;
}
if(flagvacios==0){
Richfaces.showModalPanel('panelValidacionSuma');
document.getElementById('formValidacionDeficit:txtDeficit').innerHTML='Se deben ingresar una propuesta para realizar el rebalanceo del cliente.';
}
}

function procesarCodigos()
{
	
	var opciones = '';
	
	if(document.getElementById("hidMostrarRadio") == undefined)
	{
		var elementos = document.getElementsByName('chkEjecutivos');
		for (x=0;x<elementos.length;x++)
		{
			if(elementos[x].checked)
			{
				opciones = opciones + elementos[x].value + ',';			
			}
		}
		
		if(opciones != '')
		{
			opciones = opciones.substring(0, opciones.length-1);

		}
		document.getElementById('formEjecutivos:hidEjecutivos').value = opciones;
		document.getElementById('formEjecutivos:btnGuardarPrincipal').click();
	}	
	else
	{
		var elementos = document.getElementsByName('rdbEjecutivos');
		for (x=0;x<elementos.length;x++)
		{
			if(elementos[x].checked)
			{
				opciones = opciones + elementos[x].value + ',';			
			}
		}
		
		if(opciones != '')
		{
			opciones = opciones.substring(0, opciones.length-1);

		}
		document.getElementById('formEjecutivosRadio:hidEjecutivosRadio').value = opciones;
		document.getElementById('formEjecutivosRadio:btnGuardarPrincipalRadio').click();
	}	
	
	
	
}

function abrirJerarquia()
{

	if(document.getElementById("hidMostrarRadio") == undefined)
	{
		Richfaces.showModalPanel('panelEjecutivos');
	}	
	else
	{
		Richfaces.showModalPanel('panelEjecutivosRadio');
	}	
}

function validacionValoresRebalanceoNC(){
var montousd='';
var montoeur='';
var txtmontopen='';
var txtmontousd='';
var txtmontoeur='';
var descripcioncat='';
var desviacionmonto=parseFloat(0);
var plazo='';
var flag=0;///////
var tipomoneda='';
for (var i=2;i<document.getElementById('formPrincipal:tableCalculadoraCliente').rows.length;i++)  
{

txtmontoeur = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[7];
if(txtmontoeur.firstChild){
if(txtmontoeur.firstChild.type=='text'){

descripcioncat = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[0].innerHTML;
plazo = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[1].innerHTML;
montousd = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[2].firstChild.value;
montousd=montousd.replace(/,/g,'');
if(montousd==''){montousd=0};
montopen= document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[3].firstChild.value;
montopen=montopen.replace(/,/g,'');
if(montopen==''){montopen=0};
montoeur = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[4].firstChild.value;
montoeur=montoeur.replace(/,/g,'');
txtmontousd = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[5].firstChild.value;
if(txtmontousd==''){txtmontousd=0};
txtmontopen= document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[6].firstChild.value;
if(txtmontopen==''){txtmontopen=0};
txtmontoeur= document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[7].firstChild.value;
if(txtmontoeur==''){txtmontoeur=0};
flag=0;//////
tipomoneda='DOLARES';
desviacionmonto=parseFloat(montousd);
if(parseFloat(montousd)>=parseFloat(txtmontousd)*(-1)){
tipomoneda='SOLES';
desviacionmonto=parseFloat(montopen);
if(parseFloat(montopen)>=parseFloat(txtmontopen)*(-1)){
tipomoneda='EUROS';
desviacionmonto=parseFloat(montoeur);
if(parseFloat(montoeur)>=parseFloat(txtmontoeur)*(-1)){
	flag = 1;
}
}
}
if(flag==0){
if(tipomoneda=='DOLARES'){
//document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[5].firstChild.class='inputTextWarning';
}
if(tipomoneda=='SOLES'){
//document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[6].firstChild.class='inputTextWarning';
}
if(tipomoneda=='EUROS'){
//document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[7].firstChild.class='inputTextWarning';
}
Richfaces.showModalPanel('panelValidacionValores');
if(plazo != ''){
plazo=' - '+plazo;
}
document.getElementById('formValidacionValores:txtValidacionValores').innerHTML='No puede sacar una cantidad mayor de la que dispone en: ' + descripcioncat + plazo+ ' / Producto en ' +tipomoneda + ' = ' + format_number(desviacionmonto,2) ;
return false;
}
}
}
}
return true;
}


function validacionZeroInputTextPortafolio(){
var montousd='';
var montoeur='';
var txtmontopen='';
var txtmontousd='';
var txtmontoeur='';
var descripcioncat='';
var plazo='';
var flag=0;///////
var tipomoneda='';
var sumafila=parseFloat(0);
for (var i=2;i<document.getElementById('formPrincipal:tableCalculadoraCliente').rows.length;i++)  
{

txtmontoeur = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[7];
if(txtmontoeur.firstChild){
if(txtmontoeur.firstChild.type=='text'){
txtmontousd = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[2].firstChild.value;
if(txtmontousd==''){txtmontousd=0};
txtmontopen= document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[3].firstChild.value;
if(txtmontopen==''){txtmontopen=0};
txtmontoeur= document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[4].firstChild.value;
if(txtmontoeur==''){txtmontoeur=0};
sumafila=sumafila+parseFloat(txtmontousd)+
parseFloat(txtmontopen)+
parseFloat(txtmontoeur);
}
}
}
if(sumafila==0){
Richfaces.showModalPanel('panelValidacionSuma');
document.getElementById('formValidacionDeficit:txtDeficit').innerHTML='Debe ingresar el saldo disponible del Portafolio Actual';
return false;
}
if(sumafila!=0){
validacionRojosPortafolio();
return true;
}
}


function validacionRojosPortafolio(){
var montousd='';
var montoeur='';
var txtmontopen='';
var txtmontousd='';
var txtmontoeur='';
var descripcioncat='';
var desviacionmonto=parseFloat(0);
var plazo='';
var flag=0;///////
var tipomoneda='';
for (var i=2;i<document.getElementById('formPrincipal:tableCalculadoraCliente').rows.length;i++)  
{

txtmontoeur = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[7];
if(txtmontoeur.firstChild){
if(txtmontoeur.firstChild.type=='text'){

descripcioncat = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[0].innerHTML;
plazo = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[1].innerHTML;
montousd = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[2].firstChild.value;
montousd=montousd.replace(/,/g,'');
if(montousd==''){montousd=0};
montopen= document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[3].firstChild.value;
montopen=montopen.replace(/,/g,'');
if(montopen==''){montopen=0};
montoeur = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[4].firstChild.value;
montoeur=montoeur.replace(/,/g,'');
txtmontousd = document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[5].firstChild.value;
if(txtmontousd==''){txtmontousd=0};
txtmontopen= document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[6].firstChild.value;
if(txtmontopen==''){txtmontopen=0};
txtmontoeur= document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[7].firstChild.value;
if(txtmontoeur==''){txtmontoeur=0};
flag=0;//////
tipomoneda='DOLARES';
desviacionmonto=parseFloat(montousd) + parseFloat(txtmontousd);
if(parseFloat(montousd)>=parseFloat(txtmontousd)*(-1)){
tipomoneda='SOLES';
desviacionmonto=parseFloat(montopen) + parseFloat(txtmontopen);
if(parseFloat(montopen)>=parseFloat(txtmontopen)*(-1)){
tipomoneda='EUROS';
desviacionmonto=parseFloat(montoeur) + parseFloat(txtmontoeur);
if(parseFloat(montoeur)>=parseFloat(txtmontoeur)*(-1)){
	flag = 1;
}
}
}
document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[5].firstChild.className='inputTextStrech';
document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[6].firstChild.className='inputTextStrech';
document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[7].firstChild.className='inputTextStrech';
if(flag==0){
if(tipomoneda=='DOLARES'){
//document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[5].firstChild.className='inputTextWarning';
}
if(tipomoneda=='SOLES'){
//document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[6].firstChild.className='inputTextWarning';
}
if(tipomoneda=='EUROS'){
//document.getElementById('formPrincipal:tableCalculadoraCliente').rows[i].cells[7].firstChild.className='inputTextWarning';
}
}
}
}
}
}

function format_number(pnumber,decimals){
	if (isNaN(pnumber)) { return 0};
	if (pnumber=='') { return 0};
	var result = '';

	result = parseFloat(pnumber).toFixed(decimals);
	return addCommas(result);
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function imposeMaxLength(Object, MaxLen)
{
  return (Object.value.length <= MaxLen);
}

function getDataCalendar(){
	var eVista=document.getElementById("vistaCalendar");
	var eDesde=document.getElementById("fechaDesde");
	var eHasta=document.getElementById("fechaHasta");
	var eView=document.getElementById("view");
	if(evista&&eDesde&&eHasta&&eView){
		var view = jQuery('#calendar').fullCalendar('getView');
	}
}

function calcularTotal(){
document.getElementById('formPrincipal:txtMensajeValidacionDistr').innerHTML='';
var tamSemanas = parseFloat('4');
var sumTotal = parseFloat('0');
sumTotal=0;
for (var i=1;i<document.getElementById('formPrincipal:tblMetasAnual').rows.length;i++)  {
for(var j=1;j<=tamSemanas;j++) {
var elementSem=document.getElementById('formPrincipal:tblMetasAnual').rows[i].cells[j].firstChild.value;
//alert("element "+elementSem);
if(elementSem!=''){
sumTotal=sumTotal+parseFloat(elementSem);
//alert("sumTotal1 "+sumTotal);
document.getElementById('formPrincipal:tblMetasAnual').rows[i].cells[j].firstChild.value=elementSem;
}else{
document.getElementById('formPrincipal:tblMetasAnual').rows[i].cells[j].firstChild.value='0';
}
}
}
if(sumTotal!=0){
//alert("sumTotal2 "+sumTotal);
document.getElementById('formPrincipal:optValorTotal').innerHTML=sumTotal;
}else{
document.getElementById('formPrincipal:optValorTotal').innerHTML='0';
}
}

function recalcularTotales(){
	var tamCategorias = parseFloat(document.getElementById('formPrincipal:tamCategorias').value);
	var tamMonedas = parseFloat(document.getElementById('formPrincipal:tamMonedas').value);
	var sumCategorias = parseFloat('0');
	var sumMonedas = parseFloat('0');
	var dataTableMain = $('#formPrincipal\\:listadoComposicionFM >div >table')[0];

	for (var i=1;i<dataTableMain.rows.length;i++){
		sumCategorias=0;
		for(var j=1;j<=tamCategorias;j++){
			var elementcat=dataTableMain.rows[i].cells[j].firstChild.value;
			elementcat = elementcat.replace(/,/g,'');
			if(elementcat!=''){
				sumCategorias=sumCategorias+parseFloat(elementcat,2);
				dataTableMain.rows[i].cells[j].firstChild.value=format_number(elementcat,2);
			}else{
				dataTableMain.rows[i].cells[j].firstChild.value='0.00';
			}
		}
		if(sumCategorias!=0){
			dataTableMain.rows[i].cells[tamCategorias+1].innerHTML=format_number(sumCategorias,2);
		}else{
			dataTableMain.rows[i].cells[tamCategorias+1].innerHTML='0.00';
		}
		sumMonedas=0;
		for(var k=tamCategorias+2;k<=tamMonedas;k++){
			var elementmon = dataTableMain.rows[i].cells[k].firstChild.value;
			elementmon = elementmon.replace(/,/g,'');
			if(elementmon!=''){
				sumMonedas=sumMonedas+parseFloat(elementmon,2);
				dataTableMain.rows[i].cells[k].firstChild.value=format_number(elementmon,2);
			}else{
				dataTableMain.rows[i].cells[k].firstChild.value='0.00';
			}
		}
		if(sumMonedas!=0){
			dataTableMain.rows[i].cells[tamMonedas+1].innerHTML=format_number(sumMonedas,2);
		}else{
			dataTableMain.rows[i].cells[tamMonedas+1].innerHTML='0.00';
		}
	}
}

function formatTextNumber(object){
	var value= object.value;
	if(value==''){
		object.value='0.00';
	}else{
		if(parseFloat(object.value)>0){
			object.value=format_number(parseFloat(object.value),2);
		}
		if(parseFloat(object.value)<0){
			object.value='-'+format_number(Math.abs(parseFloat(object.value)),2);
		}
		if(parseFloat(object.value)==0){
			object.value='0.00';
		}
	}
}

function formatTextNumber3_4(object){
	var value= object.value;
	if(value==''){
		object.value='0.00000';
	}else{
		if(parseFloat(object.value)>0){
		object.value=format_number(parseFloat(object.value),4);
		}else{
		object.value='-'+format_number(Math.abs(parseFloat(object.value)),4);
		}
	}
}

function validaRepetidosUSD(){
document.getElementById('formPrincipal:mensajeValidacionUSD').innerHTML='';
var categoria = document.getElementById('formPrincipal:cmbCategoriaUSD').options[document.getElementById('formPrincipal:cmbCategoriaUSD').selectedIndex].text;
var tipo = document.getElementById('formPrincipal:cmbTipoUSD').options[document.getElementById('formPrincipal:cmbTipoUSD').selectedIndex].text;
if(categoria==''){
	document.getElementById('formPrincipal:mensajeValidacionUSD').innerHTML='Seleccione una Categor�a de Producto';
	return false;
}
if(tipo==''){
	document.getElementById('formPrincipal:mensajeValidacionUSD').innerHTML='Seleccione un Producto';
	return false;
}
if(document.getElementById('formPrincipal:tableDistribucionUSD')){
for (var i=1; i<document.getElementById('formPrincipal:tableDistribucionUSD').rows.length; i++)  
{
	if(document.getElementById('formPrincipal:tableDistribucionUSD').rows[i].cells[0].innerHTML==categoria &&
		document.getElementById('formPrincipal:tableDistribucionUSD').rows[i].cells[1].innerHTML==tipo){
		document.getElementById('formPrincipal:mensajeValidacionUSD').innerHTML='El producto ya se encuentra en la lista';
		return false;
	}
}
document.getElementById('formPrincipal:mensajeValidacionUSD').innerHTML='';
return true;
}
else{
return true;
}
}

function validaRepetidosPEN(){
document.getElementById('formPrincipal:mensajeValidacionPEN').innerHTML='';
var categoria = document.getElementById('formPrincipal:cmbCategoriaPEN').options[document.getElementById('formPrincipal:cmbCategoriaPEN').selectedIndex].text;
var tipo = document.getElementById('formPrincipal:cmbTipoPEN').options[document.getElementById('formPrincipal:cmbTipoPEN').selectedIndex].text;
if(categoria==''){
	document.getElementById('formPrincipal:mensajeValidacionPEN').innerHTML='Seleccione una Categor�a de Producto';
	return false;
}
if(tipo==''){
	document.getElementById('formPrincipal:mensajeValidacionPEN').innerHTML='Seleccione un Producto';
	return false;
}
if(document.getElementById('formPrincipal:tableDistribucionPEN')){
for (var i=1; i<document.getElementById('formPrincipal:tableDistribucionPEN').rows.length; i++)  
{
	if(document.getElementById('formPrincipal:tableDistribucionPEN').rows[i].cells[0].innerHTML==categoria &&
		document.getElementById('formPrincipal:tableDistribucionPEN').rows[i].cells[1].innerHTML==tipo){
		document.getElementById('formPrincipal:mensajeValidacionPEN').innerHTML='El producto ya se encuentra en la lista';
		return false;
	}
}
document.getElementById('formPrincipal:mensajeValidacionPEN').innerHTML='';
return true;
}
else{
return true;
}
}

function validaRepetidosEUR(){
document.getElementById('formPrincipal:mensajeValidacionEUR').innerHTML='';
var categoria = document.getElementById('formPrincipal:cmbCategoriaEUR').options[document.getElementById('formPrincipal:cmbCategoriaEUR').selectedIndex].text;
var tipo = document.getElementById('formPrincipal:cmbTipoEUR').options[document.getElementById('formPrincipal:cmbTipoEUR').selectedIndex].text;
if(categoria==''){
	document.getElementById('formPrincipal:mensajeValidacionEUR').innerHTML='Seleccione una Categor�a de Producto';
	return false;
}
if(tipo==''){
	document.getElementById('formPrincipal:mensajeValidacionEUR').innerHTML='Seleccione un Producto';
	return false;
}
if(document.getElementById('formPrincipal:tableDistribucionEUR')){
for (var i=1; i<document.getElementById('formPrincipal:tableDistribucionEUR').rows.length; i++)  
{
	if(document.getElementById('formPrincipal:tableDistribucionEUR').rows[i].cells[0].innerHTML==categoria &&
		document.getElementById('formPrincipal:tableDistribucionEUR').rows[i].cells[1].innerHTML==tipo){
		document.getElementById('formPrincipal:mensajeValidacionEUR').innerHTML='El producto ya se encuentra en la lista';
		return false;
	}
}
document.getElementById('formPrincipal:mensajeValidacionEUR').innerHTML='';
return true;
}else{
return true;
}
}

function validaInsercionPregunta(){
var q=0;
document.getElementById('formularioPanel:msjValTipo').innerHTML='';
document.getElementById('formularioPanel:msjValNombre').innerHTML='';
document.getElementById('formularioPanel:msjValDescripcion').innerHTML='';
document.getElementById('formularioPanel:msjValidacion').innerHTML='';


alert(document.getElementById('formularioPanel:tipoRespuesta').value='');
if(document.getElementById('formularioPanel:tipoRespuesta').value==''){
	
	document.getElementById('formularioPanel:msjValTipo').innerHTML='*';
	q=1;
}
if(document.getElementById('formularioPanel:nombre').value==''){
	document.getElementById('formularioPanel:msjValNombre').innerHTML='*';
	q=1;
}
if(document.getElementById('formularioPanel:descripcion').value==''){
	document.getElementById('formularioPanel:msjValDescripcion').innerHTML='*';
	q=1;
}
if(q==1){
	document.getElementById('formularioPanel:msjValidacion').innerHTML='Faltan campos obligatorios por ingresar';
	return false;
}
if(q==0){
	return true;
}
}
function limpiaValidacionPregunta(){
 	document.getElementById('formularioPanel:msjValTipo').innerHTML='';
 	document.getElementById('formularioPanel:msjValNombre').innerHTML='';
 	document.getElementById('formularioPanel:msjValDescripcion').innerHTML='';
 	document.getElementById('formularioPanel:msjValidacion').innerHTML='';
}
 
function validaInsercionAlternativa(){
var q=0;
document.getElementById('formularioPanel:msjValAlternativa').innerHTML='';
document.getElementById('formularioPanel:msjValDescAdicional').innerHTML='';
if(document.getElementById('formularioPanel:msjValPeso')){
document.getElementById('formularioPanel:msjValPeso').innerHTML='';
}
document.getElementById('formularioPanel:msjValidacion').innerHTML='';

if(document.getElementById('formularioPanel:alternativa').value==''){
	document.getElementById('formularioPanel:msjValAlternativa').innerHTML='*';
	q=1;
}
if(document.getElementById('formularioPanel:descAdicional').value==''){
	document.getElementById('formularioPanel:msjValDescAdicional').innerHTML='*';
	q=1;
}
if(document.getElementById('formularioPanel:msjValPeso')){
if(document.getElementById('formularioPanel:peso').value==''){
	document.getElementById('formularioPanel:msjValPeso').innerHTML='*';
	q=1;
}
}
if(q==1){
	document.getElementById('formularioPanel:msjValidacion').innerHTML='Faltan campos obligatorios por ingresar';
	return false;
}
if(q==0){
	return validacionCantEscenarios();
}
}

 function limpiaValidacionAlternativa(){
 	document.getElementById('formularioPanel:msjValAlternativa').innerHTML='';
 	document.getElementById('formularioPanel:msjValDescAdicional').innerHTML='';
 	if(document.getElementById('formularioPanel:msjValPeso')){
 	document.getElementById('formularioPanel:msjValPeso').innerHTML='';
 	}
 	document.getElementById('formularioPanel:msjValidacion').innerHTML='';
 }
 
 function limpiarMensajeBT(){
 	document.getElementById('formPrincipal:mensajeUpdate').innerHTML='';
 }
 
 function limpiarMensajeFM(){
 	document.getElementById('formPrincipal:idMensaje').innerHTML='';
 }

 	function validacionFM(){
	 	var tamCategorias = parseFloat(document.getElementById('formPrincipal:tamCategorias').value);
		var tamMonedas = parseFloat(document.getElementById('formPrincipal:tamMonedas').value);
		var sumCategorias = parseFloat('0');
		var sumMonedas = parseFloat('0');
		var mensaje='';
		var classError = 'btnError';
		var dataTableMain = $('#formPrincipal\\:listadoComposicionFM >div >table')[0];
		
		for (var i=1;i<dataTableMain.rows.length;i++){
			sumCategorias=0;
			for(var j=1;j<=tamCategorias;j++){
				var elementcat=dataTableMain.rows[i].cells[j].firstChild.value;
				elementcat = elementcat.replace(/,/g,'');
				if(elementcat!=''){
					sumCategorias=sumCategorias+parseFloat(elementcat,2)*100;
					dataTableMain.rows[i].cells[j].firstChild.value=format_number(elementcat,2);
				}else{
					dataTableMain.rows[i].cells[j].firstChild.value='0.00';
				}
			}
			if(sumCategorias/100>100){
				mensaje = mensaje+'<img class='+classError+'> '+dataTableMain.rows[i].cells[0].innerHTML +' (Suma '+sumCategorias/100+'% en Categor�as) debe sumar 100%.</br>';
			}
			if(sumCategorias/100<100 && sumCategorias != 0 ){
				mensaje = mensaje+'<img class='+classError+'> '+dataTableMain.rows[i].cells[0].innerHTML +' (Suma '+sumCategorias/100+'% en Categor�as) debe sumar 100%.</br>';
			}
			
			sumMonedas=0;
			for(var k=tamCategorias+2;k<=tamMonedas;k++){
				var elementmon = dataTableMain.rows[i].cells[k].firstChild.value;
				elementmon = elementmon.replace(/,/g,'');
				if(elementmon!=''){
					sumMonedas=sumMonedas+parseFloat(elementmon,2)*100;
					dataTableMain.rows[i].cells[k].firstChild.value=format_number(elementmon,2);
				}else{
					dataTableMain.rows[i].cells[k].firstChild.value='0.00';
				}
			}
			if(sumMonedas/100>100){
				mensaje = mensaje+'<img class='+classError+'> '+dataTableMain.rows[i].cells[0].innerHTML+' (Suma '+sumMonedas/100+'% en Monedas) debe sumar 100%. </br>';
			}
			if(sumMonedas/100<100 && sumMonedas != 0 ){
				mensaje = mensaje+'<img class='+classError+'> '+dataTableMain.rows[i].cells[0].innerHTML+' (Suma '+sumMonedas/100+'% en Monedas) debe sumar 100%. </br>';
			}
		}
		if(mensaje!=''){
			document.getElementById('formPrincipal:idMensaje').innerHTML = mensaje;
			return false;
		}
	 	return true;
	 }
 
 function validacionDistribucion(idTable, posicionValor, mensaje, flagModal){
	var sum_valores = parseFloat(0);
	if(document.getElementById(idTable)){
 	for (var i=1;i<document.getElementById(idTable).rows.length;i++)  
	{
		sum_valores = sum_valores + parseFloat(document.getElementById(idTable).rows[i].cells[posicionValor].childNodes[1].value);
	}
	if(sum_valores != 100 && document.getElementById(idTable).rows.length > 1){
		if(flagModal==1){
		document.getElementById('formModal:mensajeError').innerHTML = mensaje;
		Richfaces.showModalPanel('mpMensaje');
		}
		return false;
	}
	else{
		return true;
	}
	}
	else{
		return true;
	}
 }
 
 function validacionIncongruenciaSeleccionada(idTable, posicionValor){
	var cantidad_selecciones=0;
	if(document.getElementById(idTable)){
 	for (var i=1;i<document.getElementById(idTable).rows.length;i++)  
	{
		if(document.getElementById(idTable).rows[i].cells[posicionValor].firstChild.value!=''){
			cantidad_selecciones++;
		}
	}
	if(cantidad_selecciones==0){
		document.getElementById('formModal:mensajeError').innerHTML = 'Seleccione una alternativa.';
		return false;
	}
	else{
		if(document.getElementById('formModal:comentarios').value==''){
			document.getElementById('formModal:mensajeError').innerHTML = 'Ingrese un comentario.';
			return false;
		}else{
			return true;
		}
	}
 	}
 }
 
 function limpiarIncongruenciaSelec(){
	document.getElementById('formModal:mensajeError').innerHTML = '';
 }
 
 
 function validaValorSeleccionadoEsc(){
		
	 
	 
		//alert($('#formularioPanel\\:cmbEscenarios_label').text()); 
		
		limpiaSeleccionadoEsc();
		//var escenarios=document.getElementById('formularioPanel:cmbEscenarios').options[document.getElementById('formularioPanel:cmbEscenarios').selectedIndex].text;
		var escenarios=$('#formularioPanel\\:cmbEscenarios_label').text();

		//var valor = document.getElementById('formularioPanel:txtValorEscenario').value;
		var valor = document.getElementById('formularioPanel:txtValorEscenario').value;
		document.getElementById('formularioPanel:mensajeError').innerHTML='';
	 	if(escenarios==''){
	 		document.getElementById('formularioPanel:mensajeError').innerHTML = 'Debe de informar el Escenario y el Valor.';
		 	return false;
	 	}
	 	else if( valor ==''){
	 		document.getElementById('formularioPanel:mensajeError').innerHTML = 'Debe de informar el Escenario y el Valor.';
		 	return false;
		}else {
			if($('#formularioPanel\\:tableEscenarios tbody tr').length==3)  {
				document.getElementById('formularioPanel:mensajeError').innerHTML='Solo se permite ingresar 3 escenarios';
				return false;
			}
			if($('#formularioPanel\\:tableEscenarios tbody tr')){
				var a;
				$("#formularioPanel\\:tableEscenarios tbody tr").each(function (index) {
		 			var campo1;
		 			
		 			$(this).children("td").each(function (index2) {
		 				
		 				switch (index2) {
		 				  case 0:
		 				  campo1 = $(this).text();
		 				}
		 			})
		 			
		 			
		 			if(campo1==escenarios) {
		 				document.getElementById('formularioPanel:mensajeError').innerHTML='El escenario ya se encuentra en la lista.';
		 				a=false;
		 				return false;
		 			    
		 			}
		 			else {
		 				a=true;
		 				return true;
		 			}
		 				 			
		 		} )
		 		
				return a;
		 		
			}
			
			
		}
	 	
	 	
	}
	 

 
 function limpiaSeleccionadoEsc(){
 	document.getElementById('formularioPanel:mensajeError').innerHTML = '';
 }
 
 function limpiaValidacionMantenimientoPerfil(){
 	document.getElementById('formularioPanel:mensajeError').innerHTML='';
 }
 
 function validacionMantenimientoPerfil(){
	 var mensajeValidacion='';
	 var classError = 'btnError';
	 var q = 0;
 	if(document.getElementById('formPrincipal:nombrePerfil').value==''){
 		mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Debe de informar el Nombre de Perfil </br>';
	 	q = 1;
 	}
 	if(document.getElementById('formPrincipal:descripcion').value==''){
 		mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Debe de informar la descripci�n </br>';
	 	q = 1;
	}
	else if(document.getElementById('formPrincipal:objetivo').value==''){
 		mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Debe de informar el objetivo </br>';
	 	q = 1;
	}
	if(document.getElementById('formPrincipal:horizonte').value==''){
	 	mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Debe de informar el horizonte </br>';
	 	q = 1;
	}
	if(document.getElementById('formPrincipal:minimo').value==''){
	 	mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Debe de informar el m�nimo </br>';
	 	q = 1;
	}
	if(document.getElementById('formPrincipal:maximo').value==''){
		mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Debe de informar el m�ximo </br>';
	 	q = 1;
	}
	if(document.getElementById('formPrincipal:rebalanceoVencimiento').value==''){
	 	mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Debe de informar el vencimiento del Rebalanceo </br>';
	 	q = 1;
	}
	if(document.getElementById('formPrincipal:perfilVencimiento').value==''){
		mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Debe de informar el vencimiento del Perfil </br>';
	 	q = 1;
	}
	if(!validacionDistribucion('formPrincipal:listCategorias',1, '',0)){
		mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'La sumatoria de los valores en la distribucion Categor�as, deben ser total a 100. </br>';
		q = 1;
	}
	
	if(!validacionDistribucion('formPrincipal:tableDistribucionPEN',2,'',0)){
		mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'La sumatoria de los valores en la distribucion Soles, deben ser total a 100. </br>';
		q = 1;
	}
	
	if(!validacionDistribucion('formPrincipal:tableDistribucionUSD',2,'',0)){
		mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'La sumatoria de los valores en la distribucion Dolares, deben ser total a 100. </br>';
		q = 1;
	}
	
	if(!validacionDistribucion('formPrincipal:tableDistribucionEUR',2,'',0)){
		mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'La sumatoria de los valores en la distribucion Euros, deben ser total a 100. </br>';
		q = 1;
	}
	if(q==1){
		document.getElementById('formModal:mensajeError').innerHTML = mensajeValidacion;
		Richfaces.showModalPanel('mpMensaje');
	 	return false;
	}
	if(q==0){
	 	return comparaCambiosPerfilDatos();
	}
 }
 
 function validacionCantEscenarios(){
	 if(document.getElementById('formularioPanel:tableEscenarios')){
	 var nroEscenarios= parseFloat(document.getElementById('formularioPanel:tableEscenarios').rows.length)-1;
	 var cantEscenarios = parseFloat(document.getElementById('formPrincipal:nroEscenarios').innerHTML);
	 if(nroEscenarios == cantEscenarios){
		return true;
	 }
	 else{
	 	document.getElementById('formularioPanel:mensajeError').innerHTML='Debe ingresar '+ (cantEscenarios) +' escenarios a la grilla as� como se indica en la pregunta';
	 	return false;
	 }
	 }else{
	 	return true;
	 }
 }
 
 function validacionCantEscenariosAdd(){
	 var nroEscenarios= parseFloat(document.getElementById('formularioPanel:tableEscenarios').rows.length)-1;
	 var cantEscenarios = parseFloat(document.getElementById('formPrincipal:nroEscenarios').innerHTML);
	 if(nroEscenarios >= cantEscenarios){
		document.getElementById('formularioPanel:mensajeError').innerHTML='Debe ingresar '+ (cantEscenarios) +' escenarios a la grilla as� como se indica en la pregunta';
		return false;
	 }
	 return true;
 }
 
 function comparaCambiosPerfilDatos(){
 var q = 0;
 var classError = 'btnError';
 var mensajeValidacion='';
 if(!comparaCambios('formPrincipal:listCategorias',1)){
 	q = 1;
 	mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Se han encontrado valores sin procesar en la Tabla Categor�a de Activos. </br>';
 }
 
 if(!comparaCambios('formPrincipal:tableDistribucionUSD',2) ){
 	q = 1;
 	mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Se han encontrado valores sin procesar en la Tabla D�lares. </br>';
 }
 
 if(!comparaCambios('formPrincipal:tableDistribucionPEN',2)){
 	q = 1;
 	mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Se han encontrado valores sin procesar en la Tabla Soles. </br>';
 }
 
 if(!comparaCambios('formPrincipal:tableDistribucionEUR',2) ){
 	q = 1;
 	mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Se han encontrado valores sin procesar en la Tabla Euros. </br>';
 }
 	
	var cantUSD = parseFloat(document.getElementById('formPrincipal:tableDistribucionUSD').rows.length)-1;
	var cantPEN = parseFloat(document.getElementById('formPrincipal:tableDistribucionPEN').rows.length)-1;
	var cantEUR = parseFloat(document.getElementById('formPrincipal:tableDistribucionEUR').rows.length)-1;
	var filasUSD = parseFloat(document.getElementById('formPrincipal:cantidadRowsUSD').value);
	var filasPEN = parseFloat(document.getElementById('formPrincipal:cantidadRowsPEN').value);
	var filasEUR = parseFloat(document.getElementById('formPrincipal:cantidadRowsEUR').value);
	
 if(cantUSD!=filasUSD){
 	mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Se han encontrado modificaciones sin Calcular en la Tabla D�lares. </br>';
 	q = 1;
 }if(cantPEN!=filasPEN){
	mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Se han encontrado modificaciones sin Calcular en la Tabla Soles. </br>';
	q = 1;
 }if(cantEUR!=filasEUR){
 	mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'Se han encontrado modificaciones sin Calcular en la Tabla Euros. </br>';
 	q = 1;
 }

 var minimo = parseFloat(document.getElementById('formPrincipal:minimo').value);
 var maximo = parseFloat(document.getElementById('formPrincipal:maximo').value);
 if(minimo >= maximo){
	mensajeValidacion = mensajeValidacion+'<img class='+classError+'> '+'La cantidad m�nima debe ser menor que la m�xima. </br>';
	q = 1;
 }
 
 if(q == 1){
	document.getElementById('formModal:mensajeError').innerHTML = mensajeValidacion;
	Richfaces.showModalPanel('mpMensaje');
	return false;
 }
 if(q==0){
	return true;
 }
}
 
 
 function comparaCambios(idTabla,posicionComparar){
 	for (var i=1;i<document.getElementById(idTabla).rows.length;i++)  
	{
		if(parseFloat(document.getElementById(idTabla).rows[i].cells[posicionComparar].childNodes[0].value)!=
		parseFloat(document.getElementById(idTabla).rows[i].cells[posicionComparar].childNodes[1].value)){
			return false;
		}
	}
	return true;
 }
 
 function pValidateNumber(event, numberObject) {
    var key = window.event ? event.keyCode : event.which;
    if (event.keyCode == 8 || event.keyCode == 46
     || event.keyCode == 37 || event.keyCode == 39) {
        return true;
    }else if(event.which == 46){
    	return true;
    } else if ( key < 48 || key > 57 ) {
        return false;
    }
    else return true;
 }
 
 function number_format(numberObject, decimals, dec_point, thousands_sep) {
	 	var number = numberObject.value;
	 	number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
	 	  var n = !isFinite(+number) ? 0 : +number,
	 	    prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
	 	    sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
	 	    dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
	 	    s = '',
	 	    toFixedFix = function (n, prec) {
	 	      var k = Math.pow(10, prec);
	 	      return '' + Math.round(n * k) / k;
	 	    };
	 	  // Fix for IE parseFloat(0.55).toFixed(0) = 0;
	 	  s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
	 	  if (s[0].length > 3) {
	 	    s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
	 	  }
	 	  if ((s[1] || '').length < prec) {
	 	    s[1] = s[1] || '';
	 	    s[1] += new Array(prec - s[1].length + 1).join('0');
	 	  }
	 	 numberObject.value = s.join(dec);
	}
 
	function formateaNumero(entrada){
		var num = entrada.value.replace(/\,/g,"");
		var vnum = num.split("-");
		var signo='';
		if(vnum[0]==''){
			if(num !=''){
				signo='-';
			}
			num=num.replace('-',"");
		}
		if(!isNaN(num)){
			num = num.toString().split("").reverse().join("").replace(/(?=\d*\.?)(\d{3})/g,"$1,");
			num = num.split("").reverse().join("").replace(/^[\,]/,"");
		}else{
			entrada = entrada.value.replace(/[^\d\.]*/g,"");
		}
		entrada.value=jQuery.trim(signo)+jQuery.trim(num);
	}
	
	function CatchNonNumbers_(e, negative, decimals, decimalSeparator, txt, cantdec, cantent, obj){	
	    if (e.keyCode == 8 || e.keyCode == 46 || e.keyCode == 37 || e.keyCode == 39) {
	        return true;
	    }
	    tecla = e.keyCode? e.keyCode : e.charCode;
		var sKey = String.fromCharCode(tecla);
		if((sKey == '|') || (sKey == '�') || (sKey == '`') || (sKey == '~') ||(sKey == '"') || (sKey == '&') || (sKey == ' ') || (sKey == '�') || (sKey == '!') || (sKey == '�') || (sKey == '#') || (sKey == '$') || (sKey == '%') || (sKey == '/') || (sKey == '(') || (sKey == ')') || (sKey == '=') || (sKey == '?') || (sKey == '�') || (sKey == '@') || (sKey == '*') || (sKey == '+') || (sKey == '[') || (sKey == ']') || (sKey == '{') || (sKey == '}') || (sKey == ';') || (sKey == ',') || (sKey == ':') || (sKey == '_') )
		{	
		 return false;
		}
		return CatchNonNumbers(e, negative, decimals, decimalSeparator, txt, cantdec, cantent);
	}

	function CatchNonNumbers(e, negative, decimals, decimalSeparator, txt, cantdec, cantent){
		var uni = e.keyCode? e.keyCode : e.charCode; // get the keyCode
		var decUni = getDecimalSeparatorCode(decimalSeparator); // get the decimal separator keyCode	
		var evt = window.event? event : e; // event for crtl, alt and shift key
		if(evt.ctrlKey || evt.altKey || evt.shiftKey) 
			return true;
		else 
		{
		    var ubidec = txt.value.indexOf(decimalSeparator);
		    var ubientxt = getSelectionStart(txt);
		    ubidec +=1;
	        if (cantdec <1)
		    {
	    	    decimals=false;
		    }
		    if (ubidec > 0 ) //Existe signo Decimal
		    {
		        if (ubientxt >= ubidec) //Ubicado en los decimales
		        {
		            if ((txt.value.length - ubidec) == cantdec) 
		            {	        
	        	        return false;
		            }
		        }
		        else //ubicado en los enteros
		        {
		            if ( ubientxt <= ( ubidec - 1 ) )
		            {
		                if ((ubidec-1) >= cantent) 
		                {	        
	    	                return false;
		                }
		            }
		        }
		    }
		    else
		    {
		        if ( ubidec == 0 )
		        {
		            if ( (txt.value.length >= cantent) && ( uni != decUni ) )
		            {	        
	    	            return false;
		            }
		        }
		        else
		        {
		            if ((ubidec-1) >= cantent) 
		            {	        
	    	            return false;
		            }
		        }
		    }
		    switch(uni)
		    {
		        case 0:
		            // safari
		            return true;
		        case decUni:
		            if(txt.value.replace("-", "").length > 0 && ((getCursorPosition(txt) > 0 ) || (getCursorPosition(txt) > 1 && txt.value.indexOf("-") > -1)) && txt.value.indexOf(decimalSeparator) == -1 && decimals)
		                return true;
		            else
		                return false;
		            break;
		        case 45: // minus sign
		        	if(negative=='0'){
		        		return false;
		        	}
		            if(getCursorPosition(txt) == 0 && negative)
		                return true;
		            else
		                return false;
		            break;
		        default:
					return IsAllowed(uni);
					break;
		    }
		} 
	}

